﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

/// <summary>
/// Descripción breve de Deposito
/// </summary>
public class Deposito:Conexion
{
    private int id;
    private String descripcion;
    private String direccion;
    private String estado;
	public Deposito()
	{
		
	}
    /**
     * Registra un registro en la base de datos
     */
    public void Guardar()
    {
        SentenciaSQL = "insert into deposito (id_deposito, descripcion, direccion, estado) values(nextval('sq_deposito'), '" + Descripcion + "','" + Direccion + "', '" + Estado + "');";
        AbrirConexion();
        IniciarTransaccion();
        try
        {
            EjecutarComando();
            ConfirmarTransaccion();
        }
        catch (ConexionException ex)
        {
            CancelarTransaccion();
            throw new ConexionException("no se pudo registrar", ex);
        }
        finally
        {
            CerrarConexion();
        }
    }

    /**
    * Actualiza el registro
    */
    public void Actualizar()
    {
        AbrirConexion();
        IniciarTransaccion();
        try
        {
            SentenciaSQL = "update deposito set	descripcion = '" + Descripcion + "', direccion = '" + Direccion + "' where id_deposito = " + Id + ";";
            EjecutarComando();
            ConfirmarTransaccion();
        }
        catch (ConexionException ex)
        {
            CancelarTransaccion();
            throw new ConexionException("ocurrio un error al intentar actualizar el registro", ex);
        }
        finally
        {
            CerrarConexion();
        }

    }

    /*
   * Borra el registro
   * Cambia el estado a 'b' -> borrado
   */
    public void Borrar()
    {
        SentenciaSQL = "update deposito set estado = 'b' where id_deposito = " + Id + " ;";

        AbrirConexion();
        IniciarTransaccion();
        try
        {
            EjecutarComando();
            ConfirmarTransaccion();
        }
        catch (Exception ex)
        {
            CancelarTransaccion();
            throw new ConexionException("ocurrio un error al tratar de eliminar el registro", ex);
        }
        finally
        {
            CerrarConexion();
        }
    }

    /**
    * Busca los registros que coinciden con los parametros de busqueda
    * @param marca la marca a buscar
    * @returm dataset con el resultado de la busqueda
    */
    public DataSet Buscar(String Descripcion)
    {
        DataSet ds = new DataSet();
        SentenciaSQL = "select * from deposito where estado <> 'b'  and descripcion like '%" + descripcion + "%';";
        AbrirConexion();
        IniciarTransaccion();
        try
        {
            ds = EjecutarComandoDataSet();
            ConfirmarTransaccion();
        }
        catch (Exception ex)
        {
            CancelarTransaccion();
            throw new ConexionException("ocurrio un error al realizar la busqueda", ex);
        }
        finally
        {
            CerrarConexion();
        }

        return ds;

    }

    public int Id
    {
        get { return this.id; }
        set { this.id = value; }
    }
    public String Descripcion 
    {
        get { return this.descripcion; }
        set { this.descripcion = value; }
    }

    public String Direccion
    {
        get { return this.direccion; }
        set { this.direccion = value; }
    }
    public String Estado
    {
        get { return this.estado; }
        set { this.estado = value; }
    }

}
